/**
 * 
 */
package com.roshan.web.dto;

import java.io.Serializable;
import java.util.Date;

/**
 * Device domain.
 * 
 * @author Dilshan Thambawita
 * @author roshan
 */
public class Device implements Comparable<Device>, Serializable {

    /** The Constant serialVersionUID. */
    private static final long serialVersionUID = 100L;

    /** The device type. */
    private DeviceType deviceType;

    /** The device description. */
    private String deviceDescription;

    /** The device unique id. */
    private String deviceUniqueId;

    /** The customer uri. */
    private String customerUri;

    /** The active. */
    private boolean active = true;

    /** The deleted. */
    private boolean deleted = false;

    /** The id. */
    private long id;

    /** The partner uri. */
    private String partnerUri;

    /** The tenant uri. */
    private String tenantUri;

    /** The customer device uri. */
    private String customerDeviceUri;

    /** The create date. */
    private Date createDate;

    /** The last modified date. */
    private Date lastModifiedDate;

    /**
     * @return the deviceType
     */
    public DeviceType getDeviceType() {
        return this.deviceType;
    }

    /**
     * @param deviceType the deviceType to set
     */
    public void setDeviceType(DeviceType deviceType) {
        this.deviceType = deviceType;
    }

    /**
     * @return the deviceDescription
     */
    public String getDeviceDescription() {
        return this.deviceDescription;
    }

    /**
     * @param deviceDescription the deviceDescription to set
     */
    public void setDeviceDescription(String deviceDescription) {
        this.deviceDescription = deviceDescription;
    }

    /**
     * @return the deviceUniqueId
     */
    public String getDeviceUniqueId() {
        return this.deviceUniqueId;
    }

    /**
     * @param deviceUniqueId the deviceUniqueId to set
     */
    public void setDeviceUniqueId(String deviceUniqueId) {
        this.deviceUniqueId = deviceUniqueId;
    }

    /**
     * @return the customerUri
     */
    public String getCustomerUri() {
        return this.customerUri;
    }

    /**
     * @param customerUri the customerUri to set
     */
    public void setCustomerUri(String customerUri) {
        this.customerUri = customerUri;
    }

    /**
     * @return the active
     */
    public boolean isActive() {
        return this.active;
    }

    /**
     * @param active the active to set
     */
    public void setActive(boolean active) {
        this.active = active;
    }

    /**
     * @return the deleted
     */
    public boolean isDeleted() {
        return this.deleted;
    }

    /**
     * @param deleted the deleted to set
     */
    public void setDeleted(boolean deleted) {
        this.deleted = deleted;
    }

    /**
     * @return the id
     */
    public long getId() {
        return this.id;
    }

    /**
     * @param id the id to set
     */
    public void setId(long id) {
        this.id = id;
    }

    /**
     * @return the partnerUri
     */
    public String getPartnerUri() {
        return this.partnerUri;
    }

    /**
     * @param partnerUri the partnerUri to set
     */
    public void setPartnerUri(String partnerUri) {
        this.partnerUri = partnerUri;
    }

    /**
     * @return the tenantUri
     */
    public String getTenantUri() {
        return this.tenantUri;
    }

    /**
     * @param tenantUri the tenantUri to set
     */
    public void setTenantUri(String tenantUri) {
        this.tenantUri = tenantUri;
    }

    /**
     * @return the customerDeviceUri
     */
    public String getCustomerDeviceUri() {
        return this.customerDeviceUri;
    }

    /**
     * @param customerDeviceUri the customerDeviceUri to set
     */
    public void setCustomerDeviceUri(String customerDeviceUri) {
        this.customerDeviceUri = customerDeviceUri;
    }

    /**
     * @return the createDate
     */
    public Date getCreateDate() {
        return this.createDate;
    }

    /**
     * @param createDate the createDate to set
     */
    public void setCreateDate(Date createDate) {
        this.createDate = createDate;
    }

    /**
     * @return the lastModifiedDate
     */
    public Date getLastModifiedDate() {
        return this.lastModifiedDate;
    }

    /**
     * @param lastModifiedDate the lastModifiedDate to set
     */
    public void setLastModifiedDate(Date lastModifiedDate) {
        this.lastModifiedDate = lastModifiedDate;
    }

    /*
     * (non-Javadoc)
     * 
     * @see java.lang.Comparable#compareTo(java.lang.Object)
     */
    @Override
    public int compareTo(Device o) {
        return (int) (o.getId() - this.getId());
    }

}
